/**
 * 特勤处相关类型定义
 */

// 特勤处操作项
export interface SpecialOperationItem {
  id: number
  object_id: number
  name: string
  image: string
  grade: number
  location: string
  sale_price: number
  cost_price: number
  fee: number
  bail: number
  lirun: number // 净利润
  period: number // 生产周期（小时）
  per_count: number // 生产数量
  profit_per_item: number // 单个利润
  profit_per_hour: number // 每小时利润
  materials: string // 材料信息（JSON字符串）
  primary_class: string
  second_class_cn: string
  feee: number // 手续费百分比
  baill: number // 保证金百分比
  
  // 兼容旧字段名
  current_price: number
  cost: number
  net_profit: number
  production_cycle: number
  production_quantity: number
  deposit: number
}

// 特勤处查询参数
export interface SpecialOperationQueryParams {
  page?: number
  page_size?: number
  location?: string // 位置筛选（工作台/技术中心/制药台/防具）
  min_profit?: number // 最小利润筛选
  max_cycle?: number // 最大周期筛选
  sort_by?: SpecialOperationSortField // 排序字段
  sort_order?: 'asc' | 'desc' // 排序方向
}

// 排序字段类型
export type SpecialOperationSortField = 
  | 'current_price' 
  | 'cost' 
  | 'production_cycle' 
  | 'production_quantity' 
  | 'net_profit' 
  | 'profit_per_item' 
  | 'profit_per_hour'
  | 'sale_price'
  | 'cost_price'
  | 'period'
  | 'per_count'
  | 'lirun'
  | 'fee'
  | 'bail'

// 特勤处列表响应
export interface SpecialOperationListResponse {
  list: SpecialOperationItem[]
  total: number
  page: number
  page_size: number
  from_cache: boolean
}

// 材料信息
export interface MaterialInfo {
  item_id: string
  name: string
  description: string
  type: string
  sub_type: string
  image: string
  grade: number
  original_data?: any
  from_cache: boolean
}

// 批量材料信息响应
export interface BulkMaterialInfoResponse {
  [key: string]: MaterialInfo
}

// 排行榜类型枚举
export enum SpecialOperationRankingType {
  PROFIT = 'profit', // 利润排行
  EFFICIENCY = 'efficiency', // 效率排行
  POPULAR = 'popular', // 热门排行
  CATEGORY = 'category' // 分类排行
}

// 位置选项
export interface LocationOption {
  label: string
  value: string
}

// 排序选项
export interface SortOption {
  label: string
  value: SpecialOperationSortField
  description?: string
}

// 筛选器状态
export interface FilterState {
  location: string
  minProfit: number | null
  maxCycle: number | null
  sortBy: SpecialOperationSortField
  sortOrder: 'asc' | 'desc'
}

// 排行榜配置
export interface RankingConfig {
  type: SpecialOperationRankingType
  title: string
  description: string
  sortBy: SpecialOperationSortField
  sortOrder: 'asc' | 'desc'
  limit?: number
}

// 材料解析结果
export interface ParsedMaterial {
  id: string
  name: string
  count: number
  info?: MaterialInfo
}

// 特勤处统计数据
export interface SpecialOperationStats {
  totalItems: number
  avgProfit: number
  avgCycle: number
  topLocation: string
  mostProfitableItem: SpecialOperationItem
  fastestItem: SpecialOperationItem
}
